package com.exam;

import com.example.app.Main;

import java.util.*;

public class First {
    public static void main(String[] args){
        Map<Integer, List<Integer>> map = First.randomPrison(100);
        while(map.size() > 1){
            First.killOdd(map);
        }
        System.out.println(map);
    }
    public static void killOdd(Map<Integer, List<Integer>> map){
        int odd = 1;
        Iterator<Integer> iterator = map.keySet().iterator() ;
        while(iterator.hasNext()){
            Integer i = iterator.next();
            List<Integer> kv = map.get(i);
            if(kv.get(1) % 2 == 1){
                iterator.remove();
            }else{
                int location = kv.remove(1);
                kv.add(location / 2);
            }
        }
        System.out.println(map.size());
    }
    public static Map<Integer, List<Integer>> randomPrison(int num){
        Map<Integer, List<Integer>> map = new LinkedHashMap<>();
        Random rm = new Random();
        while(map.size() < num){
            int id = rm.nextInt(200);
            if(!map.containsKey(id)){
                map.put(id, new ArrayList<>());
                map.get(id).add(map.size());
                map.get(id).add(map.size());
            }
        }
        System.out.println("数组创建成功");
        return map;
    }

}
